package com.smartleanx.module.hrm.controller.admin.employee.contract;

import com.smartleanx.module.infra.api.file.dto.FileRefRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 员工合同 Response VO")
@Data
public class EmployeeContractRespVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long id;

    @Schema(description = "员工id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long employeeId;

    @Schema(description = "合同编号")
    private String contractCode;

    @Schema(description = "合同类型", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer contractType;

    @Schema(description = "开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime startTime;

    @Schema(description = "结束日期", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime endTime;

    @Schema(description = "期限（年）", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer term;

    @Schema(description = "合同状态", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer status;

    @Schema(description = "签约公司")
    private String signCompany;

    @Schema(description = "合同签订日期", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime signTime;

    @Schema(description = "备注")
    private String remarks;

    @Schema(description = "是否缴纳社保")
    private Integer isSocialSecurity;

    @Schema(description = "合同文件id列表")
    private List<FileRefRespDTO> contractFileIdList;

    @Schema(description = "其他文件id列表")
    private List<FileRefRespDTO> otherFileIdList;

    @Schema(description = "是否已终止")
    private Boolean terminationStatus;

    @Schema(description = "终止原因")
    private String terminationReason;

    @Schema(description = "终止日期")
    private LocalDateTime terminationTime;


}
